package com.deity.deitymvp.P.Impl;

import com.deity.deitymvp.Bean.DataBean;
import com.deity.deitymvp.M.Impl.MI;
import com.deity.deitymvp.M.Interfa.IM;
import com.deity.deitymvp.P.Interface.IP;
import com.deity.deitymvp.V.Interface.IV;

/**
 * 　　　　　　　　 ┏┓　　　┏┓+ +
 * 　　　　　　　┏┛┻━━━┛┻┓ + +
 * 　　　　　　　┃　　　　　　　┃
 * 　　　　　　　┃　　　━　　　┃ ++ + + +
 * 　　　　　　┃ ████━████ ┃+
 * 　　　　　　　┃　　　　　　　┃ +
 * 　　　　　　　┃　　　┻　　　┃
 * 　　　　　　　┃　　　　　　　┃ + +
 * 　　　　　　　┗━┓　　　┏━┛
 * 　　　　　　　　　┃　　　┃ + + + +
 * 　　　　　　　　　┃　　　┃　　　　Code is far away from bug
 * 　　　　　　　　　┃　　　┃ + 　　　　with the animal protecting
 * 　　　　　　　　　┃　　　┃神兽保佑,代码无bug
 * 　　　　　　　　　┃　　 　┃　　+
 * 　　　　　　　　　┃　 　 　┗━━━┓ + +
 * 　　　　　　　　　┃ 　　　 　　　　┣┓
 * 　　　　　　　　　┃ 　　　 　　　　┏┛
 * 　　　　　　　　　┗┓┓┏━┳┓┏┛ + + + +
 * 　　　　　　　　　　┃┫┫　┃┫┫
 * 　　　　　　　　　　┗┻┛　┗┻┛+ + + +
 * ━━━━━━何必要互相伤害━━━━━━━━━━━━━━━━━━
 * 包名：com.deity.deitymvp.P.Impl
 * 项目名称：DeityMVP
 * 作者：Deity
 * 创建时间： 2016/7/2-22:20
 * 类的描述：P层的实现类，用于MV的数据和请求交互
 */

public class PI implements IP {
    private IM im;
    private IV iv;

    /**
     * 这两个对象的初始化方式不要搞混
     * @param iv
     */
    public PI(IV iv) {
        this.iv = iv;
        im = new MI();
    }


    @Override
    public void loadData() {
        //向M层请求网络数据
        im.loadData(new MI.OnLoadDataLitener() {

            @Override
            public void success(DataBean dataBean) {
                //数据返回给V层
                iv.loadData(dataBean);
            }

            @Override
            public void failure(int errorCode, String msg) {
                //错误信息的返回
                iv.loadDataErr(errorCode,msg);
            }
        });
    }
}
